package com.cyj.dream.middleware.hystrix.value;

import com.cyj.dream.middleware.hystrix.annotation.DoHystrix;
import org.aspectj.lang.ProceedingJoinPoint;

import java.lang.reflect.Method;

/**
 * @Description: 熔断的服务层
 * @BelongsProject: DreamChardonnayCloud
 * @BelongsPackage: com.cyj.dream.middleware.hystrix.value
 * @Author: ChenYongJia
 * @CreateTime: 2021-09-15 20:21
 * @Email: chen87647213@163.com
 * @Version: 1.0
 */
public interface IValveService {

    /**
     * access通道入口
     *
     * @param jp        切面信息
     * @param method    方法信息
     * @param doHystrix 注解信息
     * @param args      args对象
     * @return java.lang.Object
     * @date 2021/9/15 20:59
     * @author ChenYongJia
     * @version 1.0
     */
    Object access(ProceedingJoinPoint jp, Method method, DoHystrix doHystrix, Object[] args) throws Throwable;

}
